function SessionTimeout(){}
SessionTimeout.prototype = {
countDown : false,
sessionTimeout : 0,
timeoutAlert : 0,
timeoutId : 0,
registerSessionTimeout : function (sessExpire, timeBeforeAlert){
this.sessionTimeout = sessExpire;
this.timeoutAlert = timeBeforeAlert;
clearTimeout(this.timeoutId);
var _this = this;
this.timeoutId = setTimeout(function() { _this.alertSessionTimeout(); }, this.sessionTimeout - this.timeoutAlert);
},
alertSessionTimeout: function(){
var modal = new Modal({
title: translate['tickets-js-modal-title-alert'],
body: '
'+translate['session-timeout-js-alert']+' '+translate['session-timeout-js-seconds']+'
'+translate['session-timeout-js-alert-p2']+'
',
buttonOK : false,
cancelText : translate['session-timeout-js-update'],
cancel : function(){
$.ajax({
url: '/index/keep-alive',
success: function(time){
console.log(time);
}
});
}
});
modal.show();
this.registerCountdown();
},
registerCountdown : function(){
if(this.countDown != false){
clearInterval(countDown);
}
var _this = this;
this.countDown = setInterval(function(){
var countdown = parseInt($('#session-countdown').html());
if(countdown <= 0){
_this.sessionExpired();
clearInterval(_this.countDown);
}else{
$('#session-countdown').html(countdown - 1);
if(countdown < 3)
$('#countdown-label').html(' ' + translate['session-timeout-js-second']);
else
$('#countdown-label').html(' ' + translate['session-timeout-js-seconds']);
}
}, 1000);
},
sessionExpired: function (){
var modal = new Modal({
title: translate['session-timeout-js-expired-header'],
body: ''+translate['session-timeout-js-expired-body']+'
',
cancelText : translate['session-timeout-js-close'],
okText : translate['session-timeout-js-return-to-login'],
cancel : function(){
window.location.href = '/';
},
confirm : function(){
window.location.href = '/login';
}
});
modal.replace();
}
}
var SessionTimeout = new SessionTimeout();
$(document).ajaxComplete(function(){
if(SessionTimeout.sessionTimeout != 0){
clearTimeout(SessionTimeout.timeoutId);
SessionTimeout.timeoutId = setTimeout(function() { SessionTimeout.alertSessionTimeout(); }, SessionTimeout.sessionTimeout - SessionTimeout.timeoutAlert);
}
});